﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using vudu.Logica.Clases;
using vudu.Logica.Excepciones;
using vudu.EnlaceDatos.SqlServer;

namespace vudu.PaginasWeb.G5Materia
{
    public partial class AgregarHorarioSeccionMateria : System.Web.UI.Page
    {
        private List<SeccionMateria> secciones;
        private List<Salon> salones;
        private SeccionMateria seccion;
        private Materia materia;
        private DateTime ini, fin;
        private String _inicio, _fin, _dia, _error;

        protected void Page_Load(object sender, EventArgs e)
        {
            //OBJETO SESSION 
            string miRol = (string)Session["rol"];
            if (miRol != "Escuela")
                Response.Redirect("../G3AccesoSistema/InicioSistema.aspx");
            Escuela esc = (Escuela)Session["Usuario"];
            nombreEscuela.Text = "Escuela: " +esc.NombreEscuela;

            MigaActual.Text = "Agregar Horario a una Seccion";
            _error = "Operacion fallida: ";
            String url = Request.Url.PathAndQuery;
            String[] s = url.Split('=');
            String codigo = s[1];
            codigo = codigo.Replace("%20", " ");
            codigo = codigo.Replace("+", " ");
            seccion = new SeccionMateria();
            materia = new SqlServerMateria().ConsultarMateria(codigo, 1);
            cargarSecciones();
            cargarSalones();
        }

        private void cargarSecciones()
        {
            secciones = new List<SeccionMateria>();
            secciones = new SqlServerSeccionMateria().ConsultarSeccionesDeUnaMateria(materia);
            SeleccionarSeccion.DataSource = secciones;
            foreach (SeccionMateria sec in secciones)
            {
                SeleccionarSeccion.Items.Add(sec.IdSeccionMateria + ": " + sec.Materia.Nombre + " -Seccion: " + sec.Codigo);
            }
        }

        private void cargarSalones()
        {
            salones = new List<Salon>();
            SalonLunes.DataSource = salones;
            salones = new SqlServerSalon().ConsultarTodosLosSalones();
            foreach (Salon sal in salones)
            {
                SalonLunes.Items.Add(sal.NumeroSalon + " " + sal.Nombre);
            }
        }

        protected void BotonAceptar_Click(object sender, EventArgs e)
        {
            String[] picarSec = SeleccionarSeccion.Text.Split(':');
            String idSeccion = picarSec[0];
            List<HorarioDeClase> horariosSec = new SqlServerHorarioClase().ConsultarTodosLosHorariosDeSeccion(idSeccion);
            bool _seInserta = true;
            ini = DateTime.Parse(HoraInicioLunes.Text);
            fin = DateTime.Parse(HoraFinLunes.Text);
            if (DateTime.Compare(ini, fin) >= 0)
            {
                _seInserta = false;
                _error = _error + "No concuerdan las horas";
            }
            _dia = DropDownList2.Text;
            foreach (HorarioDeClase h in horariosSec)
            {
                if (h.Dia.Contains(_dia))
                {
                    _seInserta = false;
                    _error = _error + "Ya existe un horario asignado para este dia";
                }
            }
            if (_seInserta == true)
            {
                HorarioDeClase nuevo = new HorarioDeClase();
                nuevo.Dia = _dia;
                nuevo.HoraInicio = ini;
                nuevo.HoraFin = fin;
                Salon deHorario = new Salon();
                String[] picarSal = SalonLunes.Text.Split(' ');
                String idSalon = picarSal[0];
                deHorario.NumeroSalon = Int32.Parse(idSalon);
                nuevo.SalonDeClase = deHorario;
                bool seInserto = new SqlServerHorarioClase().AgregarHorarioSeccionMateria(nuevo, idSeccion);
                if (seInserto == true)
                {
                    LabelError.Text = "Se agrego el horario a la seccion con exito";
                    LabelError.CssClass = "transaccionExitosa";
                    LabelError.ForeColor = System.Drawing.Color.Green;

                }
                else
                {
                    LabelError.Text = _error;
                    LabelError.CssClass = "transaccionFallida";
                    LabelError.ForeColor = System.Drawing.Color.Red;
                }
                LabelError.Visible = true;
            }
            else
            {
                LabelError.Text = _error;
                LabelError.CssClass = "transaccionFallida";
                LabelError.ForeColor = System.Drawing.Color.Red;
                LabelError.Visible = true;
            }
            SeleccionarSeccion.Items.Clear();
            SalonLunes.Items.Clear();
            cargarSecciones();
            cargarSalones();
        }

        protected void SeleccionarMateria_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        protected void SeleccionarSeccion_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        protected void BotonAnterior_Click(object sender, EventArgs e)
        {
            Response.Redirect("SeleccionarMateriaHorario.aspx?var=1");
        }
    } //class
}